#include <stdio.h>

extern FILE* ffinal;

void emite_busca_tabla(int n_saltos){
  //  if saltos {
    fprintf(ffinal, "ADD   .SP,  #3     ;  .A  = PA_primero\n");
    fprintf(ffinal, "MOVE  .A ,   .R0   ;  .R1 = PA_primero\n");
    fprintf(ffinal, "MOVE #%.3d,   .R1   ;  .R1 = n_saltos\n",
            n_saltos);
    fprintf(ffinal, "CMP   .R1,  #0     ;  .A  = CMP .R1 #0\n");
    fprintf(ffinal, "BZ    $6           ;  if n_saltos==0 goto ajustar R0\n");
    fprintf(ffinal, "MOVE [.R0],  .R0   ;  sigo el PA actual\n");
    fprintf(ffinal, "DEC   .R1          ;  n_saltos--\n");
    fprintf(ffinal, "BR    $-11         ;  goto if n_saltos==0\n");
    fprintf(ffinal, "SUB   .R0,  #3     ;  .R0 seria el SP de la tabla\n");
    fprintf(ffinal, "MOVE  .A,    .R0   ;  .R0 seria el SP de la tabla\n");
    //  }
}
